• 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
Kiel368

Alternative minecraft

106 posts in this topic

So what language/platform do you suggest?
I'd be nice if game could be run on Windows, Mac, Linux and Android. Possibly iOS or PS.
I thought WebGL would be the best, becouse html5 and javascript will have a great future and in one or two years they may be very powerful.
But now I have no idea. HELP!
0

Share this post


Link to post
Share on other sites
As i know, there's none language that runs "as is" in all those platforms. if you are trying to maintain the same code base across the many platforms as possible, Java is a choice, but it may be slow unless you know how to optimize it...

Mono has the TAO framework ([url="http://www.mono-project.com/Tao"]http://www.mono-project.com/Tao[/url]) that i just come across, may be useful, as Mono runs on MAC, Linux, Windows, iOS and Android, not sure about Windows Phone thought... Theoretically, the same code base compiles on the Mono compiler and in the .Net compiler with some restrictions, so you can create your game in Mono for all platforms, but in windows you can compile it using the C# compiler (csc.exe) so your windows players don't need to download Mono and receive benefit from the JIT optimization.
1

Share this post


Link to post
Share on other sites
I'm still rather interested in WebGL. I don't think it's very slow (faster than Java [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img] ). It rather depends on user graphics hardware (WebGL is hardware accelerated). I know that writing a big game in JavaScript is not a good idea, but I have some support, wchich helps me keep my code clean.

Implementation dependent? Not really. The only condition is to write solid underlaying code, wchich will be supported by most browsers and perform such basic tasks like initialising WebGL,Shader communication, etc. I will test every change in all browsers I'd like to run the game in and eliminate errors.

You may say i'm mad, but if i succeed, i'll be the first person, used WebGL for some serious task.
If I'll find it impossible, i'll just rewrite it to other language.

P.S:We'd live in caves if we do not experiment.

I'll apprecciate anyone, who will be so brave to help me! [img]http://public.gamedev.net//public/style_emoticons/default/biggrin.png[/img] [img]http://public.gamedev.net//public/style_emoticons/default/biggrin.png[/img] [img]http://public.gamedev.net//public/style_emoticons/default/biggrin.png[/img]

P.S2:Check this out: [url="http://www.chromeexperiments.com/detail/sproingies/?f=webgl"]http://www.chromeexperiments.com/detail/sproingies/?f=webgl[/url] Edited by Kiel368
0

Share this post


Link to post
Share on other sites
Well, with this sample i only managed to get 7 fps in chrome... maybe is the work computer, will check again when i get home...

Experimenting is always good, but i really recommend that you try to write the game logic in a language that is easier to debug.

If you got a type mistake in the middle of your javascript logic, you will have a bad time... maybe try Lint: [url="http://www.javascriptlint.com/"]http://www.javascriptlint.com/[/url]

I'll try to find a good javascript IDE for you. One with Intelisense.

Some suggestions can be found here: [url="http://stackoverflow.com/questions/209126/good-javascript-ide-with-jquery-support"]http://stackoverflow.com/questions/209126/good-javascript-ide-with-jquery-support[/url]

I personally want to try aptana: [url="http://www.aptana.com/products/studio3"]http://www.aptana.com/products/studio3[/url]

For the WebGL part, this thread has some really good IDEs, i liked FractalLab: [url="http://stackoverflow.com/questions/5593274/tools-for-glsl-editing"]http://stackoverflow.com/questions/5593274/tools-for-glsl-editing[/url]

Hope that helped, even if a little, i'm looking forward to learn WebGL, so maybe i can help you one day [img]http://public.gamedev.net//public/style_emoticons/default/tongue.png[/img]
1

Share this post


Link to post
Share on other sites
Have you tried Unity? It's very flexible, easy and works in many platforms, including browser and mobile.
1

Share this post


Link to post
Share on other sites
I don't like unity. Unity is designed for stardard FPS games, and has mechanics working only with them. If i want to write a voxel game i need to perform as little amout of operations, as only possible and unity3d will perform all actions as in FPS, that are unnecessary, which will only slow down my game. Believe me - I tried and didn't succeed.
I like to have an eye on all my code. From initializing graphics to drawing GUI or sending player a message. I don't like if i write only a part of code, becouse i can't customize all low-level code for my type of game. Unity 3D is too general purpose engine for this type of game. Sorry.
0

Share this post


Link to post
Share on other sites
[quote name='Kiel368' timestamp='1342469573' post='4959720']
I don't like unity. Unity is designed for stardard FPS games, and has mechanics working only with them. If i want to write a voxel game i need to perform as little amout of operations, as only possible and unity3d will perform all actions as in FPS, that are unnecessary, which will only slow down my game. Believe me - I tried and didn't succeed.
I like to have an eye on all my code. From initializing graphics to drawing GUI or sending player a message. I don't like if i write only a part of code, becouse i can't customize all low-level code for my type of game. Unity 3D is too general purpose engine for this type of game. Sorry.
[/quote]

I understand If you need more freedom, but saying unity is designed for standard fps is underestimating it. I've wrote a marching cubes algorithm for voxels myself, using unity.
0

Share this post


Link to post
Share on other sites
So you're good at it. Send me the demo if you can. But i still think that unity3d is not a perfect tool for voxel games.

P.S.:I'd love to see this code. You do not have to show it to me... but i'd love to.
0

Share this post


Link to post
Share on other sites
[quote][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif][size=3][left][background=rgb(250, 251, 252)]So you're good at it[/background][/left][/size][/font][/color][/quote]

Not really, I used code available on the internet, just adapted to run in unity. Too bad I didn't keep any record of that! But a youtube search for 'unity marching cubes' shows that a lot of people pulled this off, you can check those out :)

I do have some videos of a more recent project of mine using Unity. It's also a very uncommon functionality, so it may serve as an illustration to its flexibility. It's a navigation system for large crowds, that works by calculating 2d vector fields over the walkable area. These are old versions, it looks less crappy now.
[url="http://www.youtube.com/watch?v=BZbIxNjU-Pg&feature=plcp"]http://www.youtube.com/watch?v=BZbIxNjU-Pg&feature=plcp[/url]

It's not as flexible as making your own engine, but I still recommend getting familiar with Unity.. if you have projects that won't be compromised by its limitations, it can be a real time saver.
1

Share this post


Link to post
Share on other sites
Creating a voxel project myself, i can attest that there is nothing like creating your own engine. Just understand that you are in a world of hurt and it will be very time consuming. There have been many helpfull people on this forum though that have eased the process.

Essentially your going to have to manage some very serious systems and depending on what you use for your backend will really depend on the limitations you run into. We had some serious issues with running on XNA and decided to port over to SlimDX, slimdx is fairly new so there is limited documentation on alot of the more advanced features that it can control. DX11 removed the ability for us to load models using the DX9 method so we had to find the collada loader and modify it so it would work with animations and textures. After 4 months of serious development we finally have something worth showing, but we have a long road ahead of us before we are even close to what one would call a playable game.

So, my suggestions is, find the base system that will support everything you are trying to do. If you dont know what you are trying to do than you really need to define that first because the rest of the stuff you will need will be 100% dependant upon that. You will waste months if you go to code something and realize the tools you are using do not support the goals of your game.

Anyway, figure I would give some friendly advice. If you have any questions please feel free to let me know and we can answer them as best as we know. We have been down the road of most of the voxel based complexites and just now are moving into making 3d objects work within the block based worled. ( got some interseting ideas to do with that ! ) Good luck!
1

Share this post


Link to post
Share on other sites
[quote name='riuthamus' timestamp='1342545207' post='4960068']
DX11 removed the ability for us to load models using the DX9 method so we had to find the collada loader and modify it so it would work with animations and textures.
[/quote]

you know... you could just export your model to .fbx format... this would have saved you 4 months of pain...
1

Share this post


Link to post
Share on other sites
[quote name='Mito' timestamp='1342552721' post='4960131']
[quote name='riuthamus' timestamp='1342545207' post='4960068']
DX11 removed the ability for us to load models using the DX9 method so we had to find the collada loader and modify it so it would work with animations and textures.
[/quote]

you know... you could just export your model to .fbx format... this would have saved you 4 months of pain...
[/quote]

What do you mean? maybe elaborate, since you obviously know something I do not not! [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img] We are using SlimDX and as far as I knew ( which i could be wrong ) it does not have a built in process for handeling the loading/importing of meshs. ( We are also a C# process, not C++ ). Edited by riuthamus
1

Share this post


Link to post
Share on other sites
I think i was wrong, i was looking for this "article": [url="http://dougrogers.blogspot.com.br/2008/03/fbx-loader-for-directx.html"]http://dougrogers.blogspot.com.br/2008/03/fbx-loader-for-directx.html[/url] that presents a fbx loader for DirectX.

As the .fbx format supports animations, i thought that this would be a easier way for you to go...

I never used SlimDX, but as you said that you had to modify the collada loader, i thought that it had a built in "Content Pipeline", sorry.
1

Share this post


Link to post
Share on other sites
No worries, i didnt mean my post to seam hostile. I would have loved if you were right. Right now DAE seems to be the only thing that works. There is not enough documention on how work with FBX, if you know of some please let me know and me and my team will make one!
1

Share this post


Link to post
Share on other sites
So, what to write it in?
a) Unity
b) WebGL
c) Some other cross-platform engine or API

I need: code easy to maintenance, speed, 300MB memory, Mobile support, rather easy modding or mod api easy to write Edited by Kiel368
0

Share this post


Link to post
Share on other sites
Those are some serious requirments.

I know that our project can handle some serious shit and runs well on mid teir 2008 graphics cards but there is no way a mobile version of it would work. 300mb of memory will be eaten up within minutes with a fully loaded voxel based game. What is the scope of your project? Make a big world or just a simple box builder/modifier? If you want to make a game that lets you modify buildings or make small things than that is 100% doable within a 300mb limit. If you are aiming for expansive world.... your going to be very limiting on what you show the player and what you load. So, first things first

1) What is the goal of your game
2) What are the limitiations of your game ( memory, video card or not? )
3) What features to you expect to use ( dynamic lighting, things of this nature )

Once you get a grasp on those things, you can really start to decide what is best for you. Honestly, Unitiy will probably be the best thing to start out with. It is already ready to go for the web applet part and has some very strong setup tools for you to play with. The limitiations of unity come when you start to talk about the type of game you wish to make and how detailed you want to make it. This is not to say that unity cant do it, it simply means that unity will need to be tailored to your setup. I think to properly answer your question we really need to know what your plan is... where do you hope to take it? what is the end goal you wish to have when you are done? If you dont know what your end goal is, you should really look into making a design/game doc first. Once you have the first parts of that filled in you can get a better idea of what you will need. Edited by riuthamus
1

Share this post


Link to post
Share on other sites
The most serious problem is voxel engine. I've done one, that renders 900 15x128x15 chunks on 60+ FPS in c# (with no optimization like viewing frustum, but with infinite world) and eats 120MB RAM, but this game is going to have some blocks 1x1x1 divided into 8x8x8 which makes 512 smaller blocks. With LOD it's possible to render, but I'll need some more RAM.

What about game design doc - the game is going to have many game modes like campaign, survival, wave defence, freebuild, component build, special ops etc.
How to start writing such a document if I don't want ti lost in papers, until I start actual programming stuff? Edited by Kiel368
0

Share this post


Link to post
Share on other sites
[quote name='Kiel368' timestamp='1342617313' post='4960465']
The most serious problem is voxel engine. I've done one, that renders 900 15x128x15 chunks on 60+ FPS in c# (with no optimization like viewing frustum, but with infinite world) and eats 120MB RAM, but this game is going to have some blocks 1x1x1 divided into 8x8x8 which makes 512 smaller blocks. With LOD it's possible to render, but I'll need some more RAM.

What about game design doc - the game is going to have many game modes like campaign, survival, wave defence, freebuild, component build, special ops etc.
How to start writing such a document if I don't want ti lost in papers, until I start actual programming stuff?
[/quote]

Well, I said the same thing, until I started to write one out and realized that it really helps for you to focus on what you are going to do. We can all sit here and say we want this and that and all the bells and whistles for a game, but then you go and try to add that with a 300mb clamp on your ram and you are really going to limit what you can do. I was simply suggesting it to help you focus on what your idea for the game is. Keeping that in mind really helps you to understand what is needed and what is something you can deal without. For example:

If you are going to have waves of monsters you are going to render a player mode, monster models, how many waves? how many monsters per wave? All those models add up really quick and before you realize it your over the 300mb cap. The design doc helps you to understand what your limitations are and where you are going. From those limitations you can then decide what engine you should use, as well as what key things to start programing. I am just spreading some of the advice that has helped us in our production. By all means take my words with a grain of salt. I just wanted to help.

We made our game in XNA thinking it would be a great idea, as we started to progress and the coders wanted to start to code more of the things I wanted added rather than the core elements they realized they couldnt do alot of the stuff because of the DX9 limitation. So we had to waste 2 months of development to convert the game from XNA to SlimDX. Something that could have been avoided if I would have had all the stuff planned ahead of time. Again, just something to think about. I think your answer would be Unity at this point.
1

Share this post


Link to post
Share on other sites
with those requirements, WebGL is almost out, i've seen some examples and the fps is really low, if you include game logic in javascript, depending on the browser, all of that javascript will be loaded at once, and that is not good. but you can use it if you use something like node.js to move your game logic to server side and make ajax calls. JQuery makes this task really easy.

the real deal is server load. you WILL need a server if you go the WebGL way. not only for multiplayer, but for all modes. unless make a package with your JS files and send it to the player, but that only works for PC/MAC and exposes all your code...

as for the Unity, its a pretty good engine and you should be able to reuse much of your voxel engine. just remember that you only need to subdivide the blocks when they are punched by the player and you don't even need to have all that chunk in memory. you can load only 3 layers for example. no way the player will break through three blocks faster than you can load the next three.

you can just generate a giant piece of the world in the world creation and store all that in disc, unload all. then load only the 3 superficial layers, capping the horizontal side of the layers to the players LOS. for the next 9 layers, store in memory the "block type id" and the "block id" (the last represents the id for the serialized block structure) for each block. every time the player breaks a block, you load a block on the same line of the block that he break, keeping the 3 layers of fully loaded blocks and the 9 layers of block ids.

all the numbers on the above description were arbitrary and will need some play test to tweak, but should save some memory, at least compared with the minecraft-way-of-loading-things. I was very surprised when i discovered that minecraft loads then entire topology of the chunk...

as for mods, if you use Unity, at least on windows you can use the Managed Extensibility Framework ([url="http://mef.codeplex.com/"]http://mef.codeplex.com/[/url] , the link is outdated because MEF now ships with the .net framework, but should give you an overview) also, for the WebGL solution, mods shold be straightforward, as all you need to do is to load a js file. The only concern about the loading of a js file is that you have no control over what that file will do.

I'm yet looking for mod in the Mono framework (as that it's what Unity uses).

in the very end, the choice is yours, the two solutions are managed, the two will have high memory requirements to do what you want. The only other solution i can think of is using plain old C++ with DirectX or OpenGL. that will give you more control over the memory, but will be harder to port for mobile devices.
1

Share this post


Link to post
Share on other sites
I've created a simple game document.
Because i can't upload this file as an attachement, I'm placing it here:

Planned game modes:

-Survival – Player spawns with nothing in the world of voxel terrain and has to survive and complete some game goal. . . .

-Freebuild – Player gets a world and infinite materials. The only goal of this game mode is to build, what you want.

-Campaign – Player spawns somewhere in pre-created world and has to complete various tasks/missions.

-Special Operations – Game mode unlocked after completing campaign. It'll contain a few missions o play at diffrent difficulties and survival op., where player has to survive waves of enemies.

-Multiplayer – start a multiplayer server – (Survival or Freebuild)

-Multiplayer Special Ops – let the player has some help. Let him play with a teammate!

-***Multiplayer campaign – after game is finished, we can think about sth. like that.

-Official map server/User-created maps – Let other users build maps in freebuild and share them with built-in map server.

-Component build – The idea of components is to build sth. in freebuild, save it and „call” it in while playing survival mode as a set of semi-transparent blocks, to see where to place particular block.

Terrain generation/Voxel structure

-World will be divided into chunks (for example: 16x16(1x1x1)blocks). Each chunk will be 16xHeight of chunk*x16. Each block can be (but don't have to) divided into smaller blocks:
1x(1x1x1) = 512x(0.125, 0.125, 0.125) or
1x(1x1x1) = 1x(8x8x8)
* - I don't know how high chunk has to be, but i want it rather to have sth around 128 blocks. If player wants to build sth. higher than 128, a new chunk, (this time I think 16x32x16) will be generated on the top.

-Terrain has to be as realistic as only possible.
-The deeper player is, the more solid rocks are.
-The deepest type of blocks has to be really solid and drop no item, so that it's pointless to mine them.

Terrain modifying:

-Player has a backpack and some space in clothes as an inventory, so the maximum, he can carry is 1.25 block.
-Player can also carry a block in hands.
-The more overloaded player is, the slower he moves.
-Player can use various types of transport for repositioning more blocks.
-Types of transport:
-A boat
-A ship
-A minecart
- . . .
-Player can also pull or push a block.

Physics:
-Physycs has to be as realistic as possible.
-Every block could has a value that indicates if the block is as overloaded that it is goig to break, or to fall.
-. . .

Rendering:
-It'd be great if the game could render 900 chunks at 60+ FPS.
-The only thing to render are visible block's surfaces. I have my alghorytm to handle this, but if I find sth. better i'll replace it.
-I have no idea how lighting should be done:
-Easy way: Use unity's built-in lights and shaders. (could be hard to optimize, if for example i have a lava lake 50xx6x50 and each lava block is a diffrent dynamic light object)
-Not so easy way: Create own lighting engine as in minecraft (I mean sth. like if you turn the smooth lighting in minecraft off) At later stages, light can be smoothed.

-Various shader and weather effects:
-rainfall
-snowfall (if a word like that exists...)
-sandstorm
-storm
-fog/mist over mountains tops or over sea in some circumstances.
-etc. . . .

-Optimization like block-LOD
-Camera viewing frustum.
-Optimization like . . .

The game is rather going to be written in Unity.
Come with some additional ideas and comment.
Sorry, if my English isn't perfect.
Kiel368.

*If you see … somewhere, it means that this topic has to be expanded.

Of course, the first version is going to be very basic.
0

Share this post


Link to post
Share on other sites
[quote name='Kiel368' timestamp='1342733753' post='4961075']
Are there any replies count limits on this forums?
[/quote]
Nope. And you aren't even closest to the [url="http://www.gamedev.net/topic/443360-do-you-believe-in-god/page__st__2100"]longest thread[/url] I've seen here. Edited by Cornstalks
1

Share this post


Link to post
Share on other sites
Has anybody a good idea of teamwork in Unity?
I want to collect a little team (2-3 people) to work on same project and i do not know how to organize all this, because i don't want to have 3 different versions came from 3 different people...

P.S.:I'd rather to avoid buying a unity team license until, the first version of project is finished and is a success.
P.S.2:Teamwork is not a main thread of this topic, so in replies rather focus on the game document.
0

Share this post


Link to post
Share on other sites
I would use some type of SVN, so you can make changes to your unity document, push them to the SVN and then before anybody else starts work they can do a pull. This type of method requires some serious discipline by the people you are working with but it works well.
1

Share this post


Link to post
Share on other sites
If you're talking about source control and synching versions, read the below:
[url="http://answers.unity3d.com/questions/18280/how-does-unity-free-source-control-go-wrong.html"]http://answers.unity3d.com/questions/18280/how-does-unity-free-source-control-go-wrong.html[/url]
[url="http://answers.unity3d.com/questions/12355/unity-and-source-control-without-unity-pro.html"]http://answers.unity3d.com/questions/12355/unity-and-source-control-without-unity-pro.html[/url]

The summary seems to be that scene and prefab files are in a binary format that can't be merged easily. They reference other files, which can cause huge problems if those files are missing/added/renamed/etc. Basically if you get it wrong your project ends up corrupted and acting weird. Many people seemed to go the path of exclusive checkouts of scenes and prefabs, whereas things like art assets and script files seemed to be more easily shared.
1

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