Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

123 Neutral

About Peppit

  • Rank
  1. I'm sort of curious if anyone here develops on linux, and if they do, what do you use? Does anyone use vim/emacs as their "IDE"? How much boilerplate did you have to write?
  2. I'm a somewhat experienced programmer (Junior CS major in college) and when I was younger I used to be EXTREMELY into game development. However, my engine of choice was GameMaker, and as we all know that's a bit limited. After becoming a better programmer, I decided I wanted to come back and make some simple 2D games using a real language. However, I haven't been able to find a good 2D engine that lets me develop in my own environment; almost all of them require me to use their own special scripting language or require me programming most of the engine myself. What I would like in a engine is: Programming is done in my own environment (emacs, vim) in an established language (like C++ or Python) I can quickly program objects (engine handles things like collision, creation and destruction of objects and scenes, etc) I can quickly place objects and design levels (I would really like to be able to use tiled to design my levels) It handles input and is easy to integrate in objects Built-in collision detection Bonus points for: Physics Android/iOS/HTML5 support The closest I have found to something I would like is melonjs, however I really don't like programming in javascript and it doesn't compile to native code (not that I would expect it to).   In an ideal world, I would like to make a simple pong game with something like this: import engine import sprites import scenes class PlayerPaddle(engine.GameObject): sprite = sprites.PaddleSprite game = 0; def __init__(self, game): self.game = game game.add_object(self, 'PlayerPaddle') # could be handled by parent self.x = 0 self.y = 0 super(PlayerPaddle, self) def update(self): if (self.game.input.keyboard.up): self.y -= 2 if (self.game.input.keyboard.down): self.y += 2 super(PlayerPaddle, self) def draw(self): engine.draw_sprite(self.x, self.y, self.sprite) super(PlayerPaddle, self) class ComputerPaddle(engine.GameObject): sprite = sprites.PaddleSprite game = 0 def __init__(self, game): self.game = game game.add_object(self, 'ComputerPaddle') # could be handled by parent self.x = game.current_scene.width-32 self.y = 0 super(ComputerPaddle, self) def update(self): if (self.game.objects['ball'][0].y > y) self.y -= 2 if (self.game.objects['ball'][0].y < y) self.y += 2 super(ComputerPaddle, self) def draw(self): engine.draw_sprite(self.x, self.y, self.sprite) super(ComputerPaddle, self) class Ball(engine.GameObject): sprite = sprites.BallSprite game = 0 def __init__(self, game): self.game = game self.hspeed = 5 self.vspeed = 5 self.x = game.scene.width/2 self.y = game.scene.height/2 game.add_object(self, 'ball') # could be handled by parent super(Ball, self) def update(self): if (engine.collides(self, game.objects['PlayerPaddle'] or engine.collides(self, game.objects['ComputerPaddle']): hspeed = -hspeed if (y < 0 or y > game.current_scene.height): vspeed = -vspeed super(Ball, self) def draw(self): engine.draw_sprite(self.x, self.y, self.sprite) super(Ball, self) game = engine.Game() game.set_scene( scenes.scenes['pong'] ) while (game.is_running): game.update() game.sleep_off_frame() I REALLY rushed through this so the python is definately wrong (and I'm not spectacular at it), but I think you get the general idea. 90% of the code is defining the behaviour of the objects, and the engine itself handles things like drawing the sprites, view locations, collisions, input, object movement, etc.   What I have tried so far: GameMaker Pros: Easy to get a basic game down, handles resources for me Cons: I have to program in their limited language, not open source, stores projects in a way that I can only really use gamemaker with it, can't develop on linux MelonJS Pros: Does about what I want Cons: I have to program in javascript which I really don't like, web only Roll my own with SFML (I am actually decently far into my own game engine, but I want to actually make games now) Pros: Does exacly what I want Cons: Extremely hard, buggy, takes forever, I have to write my own algorithms for everything and develop my own tools, unfeasible Unity Pros: Established community, good engine, compiles for everything I could want Cons: Can't develop on linux, basic 2D support, I have to learn how to use the entire program I know this is a really really common question, but I still haven't found a good engine for what I want, even after reading FAQs, etc. I would really appreciate some help.
  3. When I first messed around with making games, I had used GameMaker. The way that game maker is organized is you create objects, code their behavior, and put them in a room and run the game. Now I've moved on to C++/SFML. I am I just started on a way to organize sounds/images, but it involves running a python script to update a resources.h file that maps sprite IDs to resource paths. It seems to me that I'll need to do something similar for objects, scenes, etc. and it seems really hacky/a lot of work. Is this the normal way that people develop 2D games? Or do they generally just hardcode paths to sprites whenever they need to/something else? Any help would be appreciated.
  4. I'm starting to get the hang of C++/sfml, but I want to create a more complex game that doesn't just toss enemies at you randomly. For your games, how do you implement your levels? I would rather not have to do a bunch of create_object() calls since that would require calculating the x/y of EVERY object. All I can think of is either creating my own GUI or parse a text file that looks something like:   XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X----------------------------X X-k-X----------------1-------X X---XXXXXXXXXX---1-----------X X---X-.----------------------X X---XXXXXXXXXXXXXXXXXXXXXXXXXX X---X------------------------X X---X-^------1------o--------X X---X------------------------X X---X----------1-------------X X----------------------------X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X=obj_block 1=obj_monster .=obj player k=obj_potion ^=obj_goal o=obj_bigmonster and writing a program to parse that into create_object() calls. The only problem is that this prevents me from adding extra info to any monsters (then again, I could probably add a new symbol and make a way to add extra code to it...).   Anyways, I'm curious what other people do.  
  5. I know this probably gets asked a ton, but I still haven't found a good answer from the tons of articles/posts on the topics that I have read. I'm really not sure which language to use to start developing games. To start off, I'm obviously going to make some 2D games. There are quite a few options for 2D engines, but I can't decide on which one to use. On top of that, I need a cross-platform option since I strongly prefer to develop/test on a linux machine.   Anyways, here are the languages/libraries I have looked at:   C++/SFML Pros: I use C++ for my classes so developing in C++ could help my academics too Getting better at C++ could help my career options Cons: C++ can really suck to debug You have to manage a lot of extra stuff in C++ Compile times Python/PyGame/Pyglet Pros: Python is a great language and easy to program in Cons: Distributing python programs to windows is tough It's difficult to "lock down" python programs and prevent people from having the source I really have no idea how to make sure that the distributed game has all the dependencies met Java Pros: Easy to distribute "Enterprise" language that could translate to career skills Cons: I've never programmed in java before I'm not sure how the performance is for games (minecraft horror stories) I would have to learn Eclipse, which from what I hear is almost mandatory for java I know that I should just pick whichever one I'm most comfortable with, but I'm not especially comfortable with any of them. And on top of that, I would be happy if I could translate any skills I learn to a career. I would really appreciate any advice.
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!