Java-Gaming.org Hi !
Featured games (88)
games approved by the League of Dukes
Games in Showcase (679)
Games in Android Showcase (194)
games submitted by our members
Games in WIP (732)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: 1 ... 8 9 [10]
 91 
 on: 2016-05-24 21:26:44 
Started by StephenJSweeney - Last post by orange451
the best way to play sound in a game if FMOD.

http://www.fmod.org/
Have fun selling the game Tongue

 92 
 on: 2016-05-24 21:18:14 
Started by wreed12345 - Last post by wreed12345
Project Freeman

Overview
Project Freeman began as a game meant to be a spin off of the board game Risk. The name Project Freeman was meant to be a code name before an actual name existed. I was the sole developer for the game writing all code involved, while my friend James wrote much of the plans, and my friend Dylan did the artwork. Basically each player would join a game and start with ownership of a single country, and their objective would be to become more powerful than the other empires and overthrow them. This could be done through different attacking methods, boosting your own economy and through other methods all with the purpose of obtaining supreme power. Players have the option of joining many games that are in progress where they can send messages to each other in game, and interact by the actual game play. I made this game a few years back but never completed it as the actual planning of the gameplay just seemed to be a mess and I never got back into it with my friends. I used libgdx for the game as well for both the launcher and the game. Scene2D was used for the UI in both launcher and game. Since it is not truly finished I offer no download links but feel free to download and compile the source code from the link below.
Source Code: https://goo.gl/NqBHQb

<a href="http://www.youtube.com/v/AW9YG33X6Qs?version=3&amp;hl=en_US&amp;start=" target="_blank">http://www.youtube.com/v/AW9YG33X6Qs?version=3&amp;hl=en_US&amp;start=</a>

Backend
The powerful software allowing the whole game to operate was the server. It operated with the help of the Java networking library KryoNet which allowed data to be sent to and from the client and server. The server served as an account validator / creator, the central point hosting all games and transmitting new events from each game, and to autosave players accounts and game data. Per client request it could transmit game information, list games that are available to join, and broadcast chat messages. It was the linking point for all clients that would play the game. The server could even send out text messages if an error occurred notifying me or my friends to fix it. (Example console log shown later in this portfolio)
Commands
Within the server console, there were a variety of commands that allowed server usage to be more functional. These included: ‘get password <username>’, ‘game id <game name>’, game stop <game id>’, ‘server info’, ‘stop’, ‘delete account <username>’, ‘ban username <username> <reason>’, ‘ban ip <ip address> <reason>’, ‘save’, ‘help’, and ‘create account <username> <password>’. These simple commands increased the functionality of the server and allowed it to edit account or game data without having to create an entire new game or player account. The effect of each command should be generally self explanatory.
Saving
Periodically the server was setup to automatically save all game data, and update all user files. This was done on a separate thread rather than the main server thread as to not disrupt transmission of crucial game data. This was done through Java Serialization. It allowed for an easy data saving format which could be saved and opened very simply through native Java features. Although this is a very simple way to save data, the files that are created cannot be edited by opening them through a text editor which makes the commands that were implemented very practical in editing saved data.

Possible commands as they appear in the code


Networking
The most important aspect of the server was its ability to transmit data. Through the help of the lightweight Java networking library called KryoNet this task was accomplished. KryoNet allows for a simple way to send TCP / UDP data to a multitude of clients. It could update clients as a new game event occurred such as a new weapon in game being bought or a new in game chat message being transmitted. Sensitive information such as account passwords were sent encrypted with the help of a Blowfish Cipher.
Error Notifications
If an exception was thrown on the server or some other error occurred, it had the ability to send out a text message to myself and my friends telling us that something was wrong along with a simplified version of the error.

Launcher
The Launcher for Project Freeman was a piece of software that allowed users to create accounts, view the change log for the most recent update, automatically download the most recent game version, view the twitter feed from the Project Freeman twitter, and log in to play the game. (Pictured later in this portfolio)
Account Management
The launcher allows users to log in and create an account. All account usernames and passwords were limited to containing certain characters. Upon logging in or creating an account, all data was encrypted before being sent.
Information Display
In addition to displaying the account management portion, other information is also present. On the right side of the launcher, you can see both a twitter feed from the Project Freeman twitter account and the change log for the most recent version which is accessed from some files stored on Github used as a file server.
Auto updater
As the launcher is opened it checks to ensure that the user has the most recent version of the game. It does this by accessing some files hosted on a Github server. If the user does not have the most recent version, it downloads the most recent version from this server and replaces the older version with the updated one. It shows a status of the download percentage as the download occurs. After downloading the new updated game can be played without any messy user dependant updating.



The Game
Project Freeman was created with the huge help of the multi platform Java based gaming engine, LibGDX. LibGDX allowed me as a developer to focus more on the user side of the game rather than handling graphics and interacting with the graphics card at a lower level. After logging in through the launcher another .JAR file was opened which contained the game. It began with a loading screen which loaded all necessary assets followed by a menu screen where players could join a game. They were then brought into the magic that was Project Freeman. (Pictured later)
Loading Screen
Instead of loading assets on the fly, for the most part assets are loaded upon initial deployment of the game. This allows for uninterrupted transitions between screens upon beginning actual gameplay.
In Game Screen
The in game screen was the most important aspect of Project Freeman. It allowed users to become immersed in the actual game. On this screen was a chat box for talking to other players in game, a list of players in your current game, and an event box which would display updates such as when another country purchased weapons or when an empire was gaining strength. Everything occurred in real time, as one person somewhere else in the world placed a new weapons system on their empire, you would see it as soon as it was placed, on your own screen. This is what allowed the idea of the game of Risk to be brought to a computer.
Menu Screen
The menu screen allowed users to join a game. On the menu screen was a list of games that were available to join along with the options of joining a random game or creating their own game.




Conclusion
This game served as a coding project unlike any other. It allowed me to collaborate with some friends on a common goal and still be the sole coder of the project, which was something that I enjoyed. I came out of this coding project knowing way more than I began with which made the project as a whole successful in my eyes. It also gave me a taste of what a career in this field would be like and I think that this game, along with many other projects I have worked on, are the reason I want to major in Computer Science so strongly. This project specifically combined almost all the aspects of my knowledge in Java and programming as a whole. The biggest part of the project for me was not what I knew but what I did not know. It became a constant quest of learning about new aspects of computer science - it was a quest of understanding rather than copying and pasting. New topics learned through this project included multi threading, networking, interacting and hosting with a server, managing a larger coding project, sockets, encryption, and serialization. All these topics were taught to myself through online videos, websites, and books. No formal courses helped me with the knowledge needed to create this game. Despite this hard work the game fluttered off after most of the support structure of it was developed, largely due to poor game design that created flaws in the actual fun in the game. All in all it was an experience I will never forget and I believe it will greatly aid me moving forward. Be sure to check out the source code for the full effect of everything described: https://goo.gl/NqBHQb !

 93 
 on: 2016-05-24 20:24:37 
Started by cubemaster21 - Last post by cubemaster21


Misspelled is a game where you can test and enhance your spelling skills. You are given 4 different words and your job is to pick the one that is spelled CORRECTLY. The other 3 words will all be wrong in some way or another. There are 3 game modes:
  • Marathon - Answer as many consecutive questions as possible. You are given 30 seconds for each question. You get 3 strikes before you lose.
  • Time Attack - Answer as many questions as you can in 60 seconds.
  • Zen - Free play mode. No timers or strikes, just play as you like.
As this is my first app, I'd love to hear any feedback or suggestions you may have. The app is completely free and only requires internet permission to access the online leaderboard.

https://play.google.com/store/apps/details?id=com.toasted.misspelled

 94 
 on: 2016-05-24 20:06:00 
Started by StephenJSweeney - Last post by basil_
the best way to play sound in a game if FMOD.

http://www.fmod.org/

 95 
 on: 2016-05-24 20:00:14 
Started by Tekkerue - Last post by basil_
if you're looking for constant-speed on a curve with segments of random length, a centripetal to chordal catmul rom curve works really good : https://en.wikipedia.org/wiki/Centripetal_Catmull%E2%80%93Rom_spline

 96 
 on: 2016-05-24 14:42:32 
Started by steveyg90 - Last post by steveyg90
Hi,

Here is a link to a demo of the game, you can move around with the cursor keys, T to toggle torch on/off, left mouse to place wooden block and right mouse
button to remove block.

There are 3 ufo's flying about which will drop bad guys, head over to the left of the island to find.

Hope it works.  Please let me know the fps, many thanks.

https://www.dropbox.com/s/8i98xrjkhakm1ve/PL.zip?dl=0

PS - collision from great heights you may end up inside a block - this needs fixing, had a look at it but still trying work out why it does that.



 97 
 on: 2016-05-24 13:14:06 
Started by pw - Last post by pw
Thanks for the feedback! Smiley

The game really seems to be a bit to hard at the beginning. During development i tested it a lot and got used to the handling and steering.
I will probably update the game in the next week and try to adjust the difficulty and increase responsiveness.

 98 
 on: 2016-05-24 07:21:54 
Started by BurntPizza - Last post by Roquen
Ran across this algo visualizer: http://jasonpark.me/AlgorithmVisualizer/

 99 
 on: 2016-05-24 06:14:36 
Started by bmanmcfly - Last post by VaTTeRGeR
In case you mean 3d terrain:

You could drop your triangles in a spatial data structure of any kind and then get the nearest ones and do ray to triangle collision to determine the intersection point.

https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/math/Intersector.java#L383

This could be overkill, but it handles all kinds of terrain  (split/irregular structure)

 100 
 on: 2016-05-24 04:34:21 
Started by pw - Last post by ziozio
Similar comments to previous post, I am struggling on the basic 1 level. You make 1 mistake or get taken out by a car behind and its game over. I have also yet to see the lead car make any mistakes or get slowed down by anything.

Pages: 1 ... 8 9 [10]
 
Hydroque (13 views)
2016-05-26 14:45:46

Mac70 (37 views)
2016-05-24 21:16:33

theagentd (42 views)
2016-05-14 18:38:35

theagentd (73 views)
2016-05-10 22:37:41

theagentd (80 views)
2016-05-10 22:33:46

IanParcs (110 views)
2016-04-18 14:18:53

KaiHH (105 views)
2016-04-18 08:35:41

KaiHH (130 views)
2016-04-15 12:43:58

theagentd (133 views)
2016-04-14 02:16:17

theagentd (157 views)
2016-04-14 02:15:43
FPS Camera Tutorial
by Hydroque
2016-05-22 05:40:58

Website offering 3D Models specifically for games for free
by vusman
2016-05-18 17:23:09

Website offering 3D Models specifically for games for free
by vusman
2016-05-09 08:50:56

Website offering 3D Models specifically for games for free
by vusman
2016-05-06 11:10:21

Website offering 3D Models specifically for games for free
by vusman
2016-04-29 12:56:17

List of Learning Resources
by SilverTiger
2016-02-05 09:39:47

List of Learning Resources
by SilverTiger
2016-02-05 09:38:38

List of Learning Resources
by SilverTiger
2016-02-05 09:35:50
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!