I've been looking at three.js for a while and I was wondering if there are any open-source platforms that currently exist which provide a 3d community experience. There were many of these back in the days of VRML and X3D, just wondering if anyone has developed anything of this sort yet.
In other words:
3d multi-user worlds
realtime chat
objects/items
accounts
1st person + avatars
As far as I know, It doesn't exist yet. Altough I've seen several games/platforms in development. The closest one I know, that has most of your implmentations is Cloud Party which is built webgl, not on Three.js.
Related
I have been requested to make a port of an iOS game for Facebook.
The game itself is fairly simple, it is a puzzle game using a 2d array for a grid with XML passed from a server for loading objects onto the the grid, to create levels.
The game will ask questions at stages which will be passed to my server and stored for research purposes.
Some questions for those with experience.
What front-end options do I have with Facebook?
I have looked into both Flash and HTML5/js both of which i have little to no experience in (I'm experienced in Java/C#/Ruby + Rails).
Javascript seems like a nightmare from what I have read, even looking into javascript game engines, but at least it is free.
My backend will most likely be rails for handling server logic.
Summary(because I ramble too much)
-Is javascript for programming games really a problem for simple games on Facebook?
-Are js game engines worth using? Does anyone have any experience with them?
-Would prevention of cheating be possible with a js/rails game, do server side checks work?
-Are there any alternatives for a front end for someone with C#/Java/Ruby background?
I've never seen any Unity or Java apps on Facebook(I don't use it much) and I don't know if the licensing will be an issue for this research project.
Any input from those experienced would be greatly appreciated, I feel a bit lost with all the potential options.
Answers to the summary
-No, it is not a problem.
It brings with it certain challenges that will need to be understood, but it is a mature platform with loads of online documentation
-Definitely, but maybe not even necessary. It doesn't sound like your game is that complex, so you can probably feel comfortable trying any engine and seeing where it takes you. You may be more in need of data frameworks to deal with synchronization and management of state. I can't really recommend much without knowing more.
-Yep, preventing cheating is definitely possible. If banks can prevent arbitrary money exchange or invalid transactions, you can prevent cheating in a facebook game. You'll have to validate a lot on the server side, but that's par for the course.
-Besides flash, no. It's a javascript world out there. Flash has a lot of potential for serious games in the future, but if I were new to both I would probably bet more on JavaScript for the various other benefits it brings to the table (general web interaction, server side programming, etc)
If you are unconvinced of what JavaScript is capable of, head over to a site like chrome experiments to see what people are squeezing out of browsers nowadays.
I will keep this simple. I am looking everywhere to find something to create 3d tour of an interior similar to photosynth and gmaps street view but only with javascript.
Seadragon is the closest thing I found but its not 3d. Sorry if this is too simple but please let me know if you know any API that this can be achieved with.
Thanks a bunch
[I need this to be working with current usual web technologies so HTML5 solutions won't help]
Here are some stuff I found but not exactly my ideal:
jQuery simple panorama viewer but this is not exactly sleek/intuitive but does have a appeal as in terms of scalability, it will not require members to spend so much time taking 100s of photos to create a 3d model of a space.
of course Microsoft zoom it or seadragon which is really sleek and also doesn't need excellent photography skills but doesn't produce 3d models
Photosynth and Unity are great but even though I am thankful to Itay Moav with his/her post below I really want and need to move away from expecting people to have a plugin on their system in order to access a service as this has a huge user experience down turn.
You want to look for a 3d space-filling-curve. A 3d sfc reduces the 3d complexity to a 1d complexity. It's a bit like an octree and a fractal. For 2d you want to look for a 2d space-filling-curve. You want to look for Nick's spatial index quadtree hilbert curve blog: http://blog.notdot.net/2009/11/Damn-Cool-Algorithms-Spatial-indexing-with-Quadtrees-and-Hilbert-Curves.
I would use Unity, if you do not care about Linux users (Apple users are good).
It even has a Javascript API
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I am developing a 3d shooter game that I would like to run on Computers/Phones/Tablets and would like some help to choose which engine to use.
I would like to write the application once and port it over to Android/iOS/windows/mac with ease.
I would like to make the application streamable over the internet.
The engine needs some physics(collision detection) as well as 3d rendering capabilities
I would prefer to use a scripting language such as Javascript or Python to Java or C++(although I would be willing to learn these if it is the best option)
-My desire is to use an engine that is Code-based and not GUI-based, an engine that is more like a library which I can import into my Python files(for instance) than an application which forces me to rely on its GUI to import assets and establish relationships between them.
This desire stems from my recent experience with Unity3d and Blender. The way I had designed my code required me to write dozens of disorganized scripts to control various objects. I cannot help but think that if I had written my program in a series of python files that I would be able to do a neater, faster job.
I'd appreciate any suggestions. The closest thing to what I want is Panda3d, but I had a difficult time working with textures, and I am not convinced that my application can be made easily available to mobile phone/device users. If there is a similar option that you can think about, I'd appreciate the tip.
For the requirements that you have Unity3d is probably one of your best bets. As roy said there aren't any other 3D engines out there that will span that wide a range of platforms. Why do you think that going to a completely code based system would save you from creating a variety of classes with various responsibilities ?
The coding effort and the amount of code and classes will stay the same. The only thing that does change is the way that you interact with the system that you are producing. With any large scale system you will quickly run into hundreds of files. I am just finishing up a smaller sized unity project 3-4 month coding including learning unity it runs at 10k lines of code plus another 8k from external libraries and over 100 classes. But this amount wasn't driven by how unity works it was driven by the requirements of the project. While coding this I have learned a lot about how unity runs and what kind of patterns it requires and will be able to come up with better solutions for the next project. Look back at what you did and think about how you can organize it better. I think it is a save bet to say that you will need about the same amount of code with any other system to achieve a similar result.
The advantages that unity does have are a good multiplattform support and a excellent asset pipeline. Importing and utilising art assets, 2D, 3D and audio is for me one of the most onerous tasks of this kind of development and it is extremely well supported in unity.
You've mentioned iOS -- that pretty much limits you to going native or using web stack. Since native is not what you want (because that'd be different for each platform you mention), you can go JavaScript. The ideal thing for that would be WebGL, but support is still experimental and not available in phone systems. You can still use one of JS libraries built on top of 2D <canvas>. You can't expect great performance from that though. You can find examples here: http://www.javascriptgaming.com/
Well I see you've checked Unity3D already, but I can't think of any other engines work on PC, Telephones and via streaming internet that suport 3D (for 2D check EXEN or any others).
I'm also pretty sure that you can use Unity code-based, and it supports a couple of different languages, but for Unity to work you can't just import unity.dll (for example) into your code, no you have to use your code into unity so that unity can make it work on all these different platforms.
I recently became quite interested in developing an adobe air application, and just had a few questions that maybe some more experienced air developers could answer.
Firstly, what is the average time-frame required for an air project. Mainly I'm planning a somewhat ambitious project of porting a specific forum framework over to an air app. How long would you estimate this would take me to do personally? I want something more than just the standard browser inside an app, more along the lines of built in controls/features for all the standard functionality.
Secondly, can apps be done completely with javascript/html/xml? I'm quite proficient with these 3 technologies, but have no real experience with flex/flash. This includes making the chrome as well. Do specific features require specific languages to be involved?
Finally, any good books/articles you would recommend? Preferably more advanced books/resources that lay the groundwork for making professional quality applications.
Any additional tips or insights on what you think may be useful are very much welcomed.
Start reading Adobe AIR for AJAX Developers, particularly the Getting Started section
Without knowing your skill level how would we know how long it will take you personally?
I have built and released apps in one week in my spare time, doesn't mean your project or your skillset for this project will be comparable.
Adobe Air development is fast and easy in general.
Don't reinvent the wheel making button and menu classes, leverage what's already out there.
Take a look at MadComponents: http://code.google.com/p/mad-components/ for UI
Other than that there are several robust tweening and graphics libraries out there.
There's also stage3d and frameworks to support 2d and 3d development for almost near native performance.
You can find a python script that will do it here:
http://code.google.com/p/flashcommand/
More info here:
http://www.mikechambers.com/blog/2008/05/02/flashcommand-for-os-x-updated-to-work-with-flash-cs3/
Basically, this just uses the JSFL API in Flash Pro to automate the compilation from the command line. However, it requires that Flash Pro be installed (and the script will launch it).
There is no a way to compile FLAs without using Flash Pro.
mike chambers
I'm looking to learn some fundamentals on cartesian geometry or coordinates based game programming. Platform is irrelevant, although I'm most proficient in JavaScript, C, Objective-C. Ultimately being able to create something such as dots or checkers would be ideal. The idea is for me to learn how sprites work and how pathing works programmatically. My question to you folks is where is the best place to learn the fundamentals? Something that isn't math heavy because to be quite frank, anything further advanced than calculus to me at this point is a grey line and requires refreshing my memory.
If there is a particular book, site, or open source project -- that would probably help me the most.
Thanks for any ideas.
I think there's a few more steps to accomplishing your objective, which is understanding the basics of game programming. You mentioned understanding sprites and pathing, which are imperative to game programming, but I think that initially you should spend a little time understanding the programming and methodology behind general graphical user interaction.
Regardless of what language you will eventually program your game in, I think that learning in a modern language like Java or C# will provide you with a vast amount of libraries and will allow you to accomplish tasks like animation and Event Listeners much more simply.
Here is a list of guides and tutorials that I think will be extremely helpful to you just as they were to me and others:
This is an extremely-detailed tutorial for a Java Game Framework that includes full source code and a full walk through (with source code) of writing the infamous "Snake" game in Java, complete with a control panel, score board, and sound effects!
The book "Beginning Java 5 Game Programming" by Jonathan S. Harbour will introduce you to concepts such as 2D vector graphics and bitmap including sprite animation. Plus you can get it used on Amazon Marketplace for $12!
Here is an unbelievable tutorial on Sprite Animation that has more than 5 parts to it! Plus it's written by Richard Baldwin, a Professor of CompSci and an extremely reliable and knowledgeable source. For more tutorials by him, this is his site.
Between these sources you're going to possess the methodology of the parts that go into a game, which are applicable in any language, as well as the knowledge of how those parts can be actually implemented as well.
G'luck!
O'Reilly has a great tutorial on simple game development using Objective-C and Cocoa on the Mac. Lines of Action.
othello and the book is of course the renowned PAIP by Peter Norvig
A site I frequently visit is GameDev.net. They have a lot of resources for game programming in general. The forums are a great place to get more specific answers on game development.
On the site, visit the Articles and References page, which contains articles written by developers on various game topics.
You don't learn about a car engine by reading the Chilton's manual; you have to pop the hood and get your hands dirty!
Hope this helps.
I'm currently working on a checkers program using pygame. It's simple beyond imagination to get the graphics working, and the math that you need to achieve fluid movement is just simple vectors and vector animation.
Each rectangle or square on the board has a centerx and centery coordinate. The next square diagonal on the left is centerx - 82 and centery + 82 or the next diagonal on the right is centerx + 82 and centery + 82. A jump is just 2 diagonals. Make the functions separate to modularize your code and without much math you've got a simple checkers program. Easy.
Well, for Java, there's an API called GridWorld, (Its used as a case study for the AP Computer Science exam, which is why I'm familiar with it) It uses a coordinate system, so you might learn something from looking at it.
You will probably want to understand minimax and Alpha Beta pruning.
Sprite animation is going differ significantly based on what platform you choose to do your program on, and any generic reference for animating on that platform will get you through that. If you want to shoot for Java, Yoely's references look pretty good.
For the game AI, though, I recommend you check out Artificial Intelligence: A Modern Approach by Russell and Norvig. It looks intimidating, and understanding much of the book will take a working knowledge of high-level math concepts. However, it is engaging and well-written, and you can probably make it through the first dozen chapters or so without hitting any math landmines. The algorithms and concepts in that book will be more than enough to help you program AI for a simple game, and might even help you decide on one.
My suggestion would be to use a language/development environment that makes working with sprites easy.
Take a look at Scratch.
The Scratch web site contains thousands of projects that you can download and edit right in the development environment.
Here are some projects to get you started: http://scratch.mit.edu/tags/view/checkers
Plus, there is a good online forum filled with helpful people if you get stuck!
Once you make a game using Scratch, you can upload/share it right from the development environment or you can post it on your own web site (although that takes some doing).
Hope this helps.
http://www.gamedev.net/
This is probably one of the most well known game/graphics programming site on the net. Its forums are subject to computational geometry, algorithms and all levels of GPU programming concepts.
You would be able to get a lot of help here. There are many articles on the subject of game programming already on this site from which you can see examples and understand the thought processes behind putting together these kinds of systems.
:]
http://www.pygame.org/
Python is great to get started, and nice examples and tutorials available.