Java-Gaming.org Hi !
Featured games (91)
games approved by the League of Dukes
Games in Showcase (757)
Games in Android Showcase (229)
games submitted by our members
Games in WIP (844)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1] 2
  ignore  |  Print  
  Super Doctor Who!  (Read 41657 times)
0 Members and 1 Guest are viewing this topic.
Offline Brynn
« Posted 2014-01-18 21:21:16 »

- ALPHA 1.0 -

*THIS POST IS OUTDATED. CHECK LATEST PAGES FOR UP TO DATE GAME CONTENTS AND VERSION*

Key Features:
  • Ability to roam around 2 levels.
  • Ability to play as Matt Smith.
  • Daleks!
  • Sonic Screwdrivers that can open doors (Daleks have sonic probes too, which adds an interesting mechanic)

      Doctor Who fans unite! I am creating a Doctor Who game sort of like Mario, only it will be a lot better! And it, including the music, is in 8 bit (Currently only "Im The Doctor" and the "Doctor Who Theme", Heres more about it. The idea is you have your character, at the moment it is only Matt Smith, and you can roam levels freely and without lag thanks to my own custom built version of lwjgl. Currently it features a Level Creator, The Doctor, 1 Enemy (Working and Talking Daleks with Full AI true to the show!), and a lot more I am probably forgetting. Screenshots are at bottom.


If you do not want to search the thread for updates and downloads, the download should be this link at all times: https://dl.dropboxusercontent.com/s/bj7r1fc3d7sud0o/doctor.zip?dl=1&token_hash=AAGX_pVVs7ks3d9aoTZMmhZujRw88MTQDTP-Eno8-v4xFA

Other stuff:



Older snaps:


Offline Longarmx
« Reply #1 - Posted 2014-01-18 21:26:20 »

Images aren't showing up.  Undecided Click on the image (on the imgur page) to bring up just the image. Then copy that url. eg: http://i.imgur.com/odSbYh8.png

[Edit] Nevermind you fixed it!

Offline wessles
« Reply #2 - Posted 2014-01-18 21:30:41 »

Ah, a whovian I see.

The art seems decent, but you should release a playable demo. Even if there is only moving around, it is still good to get some opinions.

Beware, you MIGHT run into some issues with copyright, unless you acknowledge in the game that you Doctor Who is property of BBC. I'm no lawyer, but I think most fan-made games have to do this.

Good luck!

-wes
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline wessles
« Reply #3 - Posted 2014-01-18 21:36:42 »

Also, your XML idea is neat, but very large and inefficient. You should not have to use XML where you could just use IDs, otherwise you will take longer to parse the levels, and take up more space.

Think about it; which is bigger?

1  
0 0 0 1 0 0 1 2 0 2 0 0 1 0

or

1  
2  
3  
4  
5  
<entry key"0">EtcBlock</entry>
<entry key"0">EtcBlock</entry>
<entry key"0">EtcBlock</entry>
<entry key"1">AotherEtcBlock</entry>
<entry key"0">EtcBlock</entry>


It is a pretty standard technique for tile-based games.
Offline wessles
« Reply #4 - Posted 2014-01-18 22:17:43 »

No res folder, but if you add in ALL natives, it will run anywhere.
Offline Gjallar

JGO Knight


Medals: 44
Projects: 1


Follower of Nurgle


« Reply #5 - Posted 2014-01-18 22:34:08 »

FileNotFound for level .xml's and pictures, forgot something?  Tongue
Offline wessles
« Reply #6 - Posted 2014-01-19 01:57:04 »

This is pretty standard.

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
public class Doctor extends BritishComedy {
   
    ...
   
    public float HP = 100;
   
    public void hurt(float hurtamount) {
        HP -= hurtamount;
    }
   
    ...
   
}


Each enemy can have a different hurt amounts, and hit the doctor whenever he is too close.

But wait! There's more!

When you are hit, the doctor needs to be knocked back, and have a grace period for 3 seconds in which the doctor cannot be hurt, giving time for the doctor to fight or flight. This should be indicated this by either a red tint* on the doctor, or flashing his sprite for as long as he is in the grace period.
* Optional, but a fun little thing to add: have a whole bunch of different sprites of ALL the doctors, and cycle through them each time you get hit. If you have a story though, don't do this.

I hope this helped you!
-wes
Offline wessles
« Reply #7 - Posted 2014-01-19 03:37:01 »

Here's a start on all the doctors!
I present to you... Hartnell!



That image is blown up so you can see it on JGO. Actual image.
Offline Opiop
« Reply #8 - Posted 2014-01-19 14:54:13 »

Wessles you give away so much art Smiley
Offline Drenius
« Reply #9 - Posted 2014-01-19 17:42:37 »

They could leave a smoking hull with a hole in it...
Also they should be a lot harder to kill.
Nice idea!
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline wessles
« Reply #10 - Posted 2014-01-19 18:40:19 »

Wessles you give away so much art Smiley

What? I can't help my fandom of the Doctor, generic space shooters!
Offline wessles
« Reply #11 - Posted 2014-01-19 19:24:26 »

I hear you! I'm making my own engine as well. Pointing It is made on LWJGL, and I have been working on it for a bit.
I too do not take the easy way out!
Offline HeroesGraveDev

JGO Kernel


Medals: 382
Projects: 11
Exp: 4 years


┬─┬ノ(ಠ_ಠノ)(╯°□°)╯︵ ┻━┻


« Reply #12 - Posted 2014-01-19 20:39:46 »

Weeping angels will be easy to make sprites for. No need to animate. Grin

Offline HeroesGraveDev

JGO Kernel


Medals: 382
Projects: 11
Exp: 4 years


┬─┬ノ(ಠ_ಠノ)(╯°□°)╯︵ ┻━┻


« Reply #13 - Posted 2014-01-19 21:15:02 »

Would require lighting, and some simple 2D raycasting. (or raytracing if you want mirrors or something that changes the line-of-sight)

The problem is of course it turns it from a simple platformer into a more horror-like one, due to the restricted view.
However, if you want to go down that path, it will give the game a much better atmosphere, at the cost of more difficult navigation.

The simplest solution is, when rendering, draw a line from the tile to the player, and if there are any opaque tiles in the way, don't draw that block.
After that you could try adding different effects to the algorithm, like having the view fade off to black, instead of just being instant.

Once you've done that, you can just apply the same algorithm to the weeping angels, allowing them to move only when there are tiles in the way.

Another solution is to do it like in Droid Assault. The whole world is rendered normally, but entities are only drawn if they are in the line of sight. Google Droid Assault or find it on this site to see what I mean.
The downside, however, is that it may get weird seeing enemies fade in and out of view as you/they move around.

Obviously, weeping angels will be one of the more difficult enemies to implement, so leaving them out is perfectly fine.

Offline Drenius
« Reply #14 - Posted 2014-01-20 19:31:44 »

Angels: You could, maybe should use different envirements, some with lighting, some without.
No idea sorry...
Offline HeroesGraveDev

JGO Kernel


Medals: 382
Projects: 11
Exp: 4 years


┬─┬ノ(ಠ_ಠノ)(╯°□°)╯︵ ┻━┻


« Reply #15 - Posted 2014-01-20 21:01:25 »

Look at the poor (dead) cyberman. Oh- and my engine has icon and name support now Cheesy




Oh, and guess who this is


















Crap. It's gone.

Who blinked?

Offline kpars
« Reply #16 - Posted 2014-01-24 23:44:04 »

I would probably do something about the art.

The scale of the level doesn't match up to the scale of the player.

That's all I have to say really. The art could be a bit more detailed.

- Jev.
Offline Opiop
« Reply #17 - Posted 2014-01-25 00:02:01 »

Ermm... *tries not to point out the obvious*

...*Fails*
You can make great art even in low resolution. Not saying that your's isn't, but I couldn't let that go uncorrected...
Offline kpars
« Reply #18 - Posted 2014-01-25 00:07:19 »

Detailed != high res. Just saying.

If you want effective and fitting art, I would stick to an 8-bit color palette, limit and restrict the size of every sprite, and then add as much 'detail' as you can with those limitations.

'8-bit' games that you saw on the early Nintendo consoles didn't have art like this at all. The developers had very little colors and limited resources, they had to pack as much detail into a sprite as they could, and damn well they did.

If you want an example, take a look at this mega-man screenshot.

 
- Jev

 
Offline Opiop
« Reply #19 - Posted 2014-01-26 02:09:54 »

Other than those return null statements, and the oddly formatted code, I see nothing really wrong with it. There are better choices, sure, but I guess yours works.
Offline Agro
« Reply #20 - Posted 2014-01-26 02:29:40 »

take a look at this Cheesy

http://www.google.com/doodles/doctor-whos-50th-anniversary

Offline quew8

JGO Knight


Medals: 53



« Reply #21 - Posted 2014-01-26 17:10:35 »

I feel I cheated with the way I did the enums, but it was brilliant. If anyone has any suggestions or ideas, leave a comment!

If your looking for suggestions, all Enums have a valueOf(String) static method that returns the Enum with that name. Which is what you're doing. They also have an ordinal() method which returns the position of the Enum (as in from the order in which they were defined). Better that making a String and comparing Strings the whole time.
Offline Troubleshoots

JGO Knight


Medals: 36
Exp: 7-9 months


Damn maths.


« Reply #22 - Posted 2014-01-26 17:39:23 »

Please don't post code that makes me cry. Cry
Here's a much better way to do what you were doing:
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
   enum Doctor {
      A {
         @Override
         Doctor regenerate() {
            return B;
         }
      },
      B {
         @Override
         Doctor regenerate() {
            return C; // and so on...
         }
      };
     
      abstract Doctor regenerate(); // you'd call e.g Doctor.A.regenerate();
   }

Nice work though, you've done a lot.

Why are all OpenGL tutorials written in Brainf**k?
Offline Troubleshoots

JGO Knight


Medals: 36
Exp: 7-9 months


Damn maths.


« Reply #23 - Posted 2014-01-26 17:57:10 »

Thats ugly. I dont like it.

In my opinion it's beautiful:

  • Type safe
  • More performant
  • More object orientated

Why are all OpenGL tutorials written in Brainf**k?
Offline Jimmt
« League of Dukes »

JGO Kernel


Medals: 167
Projects: 5
Exp: 6 years



« Reply #24 - Posted 2014-01-26 18:12:52 »

Thats ugly. I dont like it.
You should probably explain why. Do you not like the look of it, or how it works?

@Troubleshoots That's a decent start, but I think it could be improved:
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
 enum Doctor {
      A, B;

      private Doctor(){
           //initialization

      }

      public Doctor regenerate(){
           return Doctor.values()[Arrays.asList(Doctor.values()).indexOf(this)+1];

       }
     
   }

Then you don't have to copy and paste 11 times. Also Doctor.values() should be cached but I wanted to keep it simple. And then if Arrays.asList(Doctor.values()).indexOf(this) returns the last element of the Doctor.values() array then just implement your behavior for whatever happens after 11 regenerations.
Offline Opiop
« Reply #25 - Posted 2014-01-26 19:02:57 »

I don't believe you need that for loop.
Offline Jimmt
« League of Dukes »

JGO Kernel


Medals: 167
Projects: 5
Exp: 6 years



« Reply #26 - Posted 2014-01-26 19:05:41 »

@SwordsMiner
I don't see how each doctor becomes the next? Or am I missing something?
Offline Jimmt
« League of Dukes »

JGO Kernel


Medals: 167
Projects: 5
Exp: 6 years



« Reply #27 - Posted 2014-01-26 20:03:05 »

You only gave me one file, no amount of looking will find where you're calling setDoctor.
Offline Opiop
« Reply #28 - Posted 2014-01-27 00:22:13 »

No. I also wouldn't recommend talking down to Jimmt, or anyone for that matter. How can you expect us to know your code when we cannot see it?
Offline wessles
« Reply #29 - Posted 2014-01-27 20:53:05 »

Swordsminer, this is going great, but I have one complaint about your engine.

XML level format. You really have to get a new level editing idea, because that is just crazy inefficient. You are essentially using 20-30x as much space as you could be if you used standard level saving ideas, like saving a text file full of ID's. This will result in longer editing time, and longer parsing time.

Hope this helps,
-wes
Pages: [1] 2
  ignore  |  Print  
 
 

 
EgonOlsen (45 views)
2018-06-10 19:43:48

EgonOlsen (27 views)
2018-06-10 19:43:44

EgonOlsen (47 views)
2018-06-10 19:43:20

DesertCoockie (211 views)
2018-05-13 18:23:11

nelsongames (128 views)
2018-04-24 18:15:36

nelsongames (127 views)
2018-04-24 18:14:32

ivj94 (868 views)
2018-03-24 14:47:39

ivj94 (129 views)
2018-03-24 14:46:31

ivj94 (780 views)
2018-03-24 14:43:53

Solater (144 views)
2018-03-17 05:04:08
Java Gaming Resources
by philfrei
2017-12-05 19:38:37

Java Gaming Resources
by philfrei
2017-12-05 19:37:39

Java Gaming Resources
by philfrei
2017-12-05 19:36:10

Java Gaming Resources
by philfrei
2017-12-05 19:33:10

List of Learning Resources
by elect
2017-03-13 14:05:44

List of Learning Resources
by elect
2017-03-13 14:04:45

SF/X Libraries
by philfrei
2017-03-02 08:45:19

SF/X Libraries
by philfrei
2017-03-02 08:44:05
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!