Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411426 Posts in 69363 Topics- by 58416 Members - Latest Member: JamesAGreen

April 19, 2024, 10:52:36 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsMegaCity
Pages: [1] 2 3
Print
Author Topic: MegaCity  (Read 9039 times)
SuperDisk
Level 2
**



View Profile
« on: November 03, 2012, 12:23:00 PM »


Game based on a LudumDare entry. My (8 year old) brother is doing the art, which probably isn't the best quality.

This game is quite a lot like SimCity Classic (the old DOS game), but contains more stuff and will hopefully be more fun.  Hand Joystick

There's also going to be a multiplayer mode where you get your own spot of land on a master server, and can interact with everyone else and their plot of land. Start wars, trade, etc.

Basically, a mix of MMO and SimCity..

Also it's written completely in Python. Quite ambitious, and will probably never get finished, but will be a nice learning exercise.  Coffee
« Last Edit: June 04, 2013, 06:11:23 PM by SuperDisk » Logged
Spring Missile
Level 0
**



View Profile WWW
« Reply #1 on: November 03, 2012, 12:31:11 PM »

I do find this ambitious, it gives you and your brother a chance to practice skills Smiley I hope you both enjoy yourselves! Seems like a fun project Tongue I would look forward to playing it  Beer!
Logged

SuperDisk
Level 2
**



View Profile
« Reply #2 on: November 03, 2012, 12:31:24 PM »

Completed stuff

  • Engine (it uses Pygame and has a system of states, elements, and movers.)
  • Layers system
  • Elements (Basically like objects in Game Maker)
  • States (Big elements that represent the scene)
  • Movers (Like MMF2's various movements)
  • GIF generator (the title image of this post)
  • Debugger (A generally useless one, but does work for simple tasks)
  • Not much else except thoughts.

(Also, thanks a lot Joey!)
Logged
GeoffW
Level 1
*


View Profile WWW
« Reply #3 on: November 04, 2012, 03:13:36 AM »

My (8 year old) brother is doing the art, which probably isn't the best quality.

That looks pretty good for an 8 year old!  Can't wait to see what he can do in a few years time...
Logged

SuperDisk
Level 2
**



View Profile
« Reply #4 on: November 04, 2012, 04:23:36 PM »

Credits:


I quite like my GIFmaker. The credits are actually a giant button.

Engine Layout

The engine is a class that contains all elements, states, and performs actions such as killing elements, updating stuff, and switching to a different state. It also has some functions for getting elements, player input, and image content.. Are god classes a bad thing?  Durr...?

Elements are like objects in Game Maker. Each has their own position, image (even when it's invisible), Mover (Much like MMF2's movements). Movers are objects that basically just contain a position, and are assigned to an element. They are the objects responsible for moving around elements, and can be drop in replaced for any Element.

Element with a Mouse Controlled Mover will follow the mouse, but if you replace it's mover with a Static Mover it will stay still. You can swap out an Element's mover at run-time, or override its default one at Element creation-time.

Other stuff
Since pygame is pretty slow if you just redraw the screen each frame, I'm using a system where each Element has a property called dirty, and if the element is dirty, it will be rendered, then undirtied. An element will be dirtied if it has moved since the last frame, if it is colliding with another Element, or if the element just wants to be dirtied.

If an Element is beclouded by another element completely, it will not be dirtied.

So that's that. The credits in the GIF is actually a button with the Falling Mover, and will disappear when clicked.

Perhaps I shouldn't be posting the technical stuff in the Devlogs section. Facepalm

But it's all that's really happening at the moment.  Shrug

More later! (not that anyone cares)

Corazon: Thanks!
GeoffW: My bro says thanks!
Logged
Spring Missile
Level 0
**



View Profile WWW
« Reply #5 on: November 04, 2012, 08:04:34 PM »

Interesting structure Smiley I've been making my own small Engine in AS3 the past few days whilst remaking pacman to test it ahaha! http://myswftesting.net84.net/picmin/bin/ - if you want to look at it ( wait for load, press P to start after splashscreen, WASD to move )  Smiley but yes, I wish you both good luck and I will be checking this thread often for updates  Beer!

PS. The Pacman game thing doesn't render text properly, need to fix it Smiley and I know sound/etc is horrible, it's just to test the engine Smiley
Logged

W3REWOLF
Level 0
***



View Profile WWW
« Reply #6 on: November 05, 2012, 12:09:48 AM »

This sounds pretty interesting. Cant wait to see some screenshots. Hand Thumbs Up Right
Logged

SuperDisk
Level 2
**



View Profile
« Reply #7 on: November 05, 2012, 05:37:36 PM »

Working some more on the engine. Trying to have a sane way to let you pass arguments to movers when you're overriding them at creation time. The solution now seems to be this beauty:

Code:
engine.createElement(button.Button((0, 0), text='Singleplayer', code='STUFFS'), layer=3, mover=FallingMover((0, 0)))

Which is pretty stupid and redundant. I'll work on that. Waaagh! Anyways, transitions:


Cool? Nope. But soon to have gameplay. Bear with me.
Logged
SuperDisk
Level 2
**



View Profile
« Reply #8 on: November 07, 2012, 02:59:45 PM »

Just added some structural change to make creating elements easier. Instead of having elements define their own Mover, you must specify it at creation time. This makes stuff easier, it's kind of hard to explain. Now to finish up with the GotoMover and also make the triangle fade effect better.

Also! Buttons now have a satisfying 'click' noise, so they are fun to press.
« Last Edit: November 07, 2012, 03:13:14 PM by SuperDisk » Logged
SuperDisk
Level 2
**



View Profile
« Reply #9 on: November 08, 2012, 04:02:29 PM »

Everything seems to be in order now.. I guess it's time to start working on the actual game..  Facepalm this is where the troubles seep out of the woodwork and crush your motivation and morale into a pile of sludge on the ground.  Tired

The only problem right now is stuff like this:

Code:
button.FallingButton(text='MiniCity', code='from states import minicitystate; from elements.trifader import TriFader; self.engine.createElement((0, 0), TriFader(minicitystate.MiniCityState, True), -240)')

But honestly, that shouldn't be present in the actual game, just on the title screen.. I hope  Addicted

But yeah. At least the engine is usable, and can be ripped out and used for other games. Forge on!  Hand Point Right
« Last Edit: November 08, 2012, 04:11:47 PM by SuperDisk » Logged
amidos2006
Level 1
*


View Profile WWW
« Reply #10 on: November 08, 2012, 04:26:57 PM »

Nice project I liked that your little bro is doing the art a lot Smiley I wish I had a bro like you when I was young :D

Btw his arting is not so bad for an 8 years old person Smiley nice take Smiley Hope you both enjoy the development process and waiting to play it when it is finished Smiley
Logged

SuperDisk
Level 2
**



View Profile
« Reply #11 on: November 08, 2012, 04:35:54 PM »

Thanks much! He's actually quite a lot better on pencil and paper, but hey. Thank you for the encouragement.  Smiley
Logged
GeoffW
Level 1
*


View Profile WWW
« Reply #12 on: November 09, 2012, 01:29:44 AM »

Thanks much! He's actually quite a lot better on pencil and paper

Have you tried using a scanner or digital camera then?  I think you can get quite good results with this process:
 1. draw something on paper
 2. scan it, load it into a paint package that supports layers
 3. create another layer on top, reduce the alpha or contrast of the original layer
 4. paint over the picture on the top layer
 5. discard the original layer
Logged

amidos2006
Level 1
*


View Profile WWW
« Reply #13 on: November 09, 2012, 04:47:22 AM »

Thanks much! He's actually quite a lot better on pencil and paper

Have you tried using a scanner or digital camera then?  I think you can get quite good results with this process:
 1. draw something on paper
 2. scan it, load it into a paint package that supports layers
 3. create another layer on top, reduce the alpha or contrast of the original layer
 4. paint over the picture on the top layer
 5. discard the original layer

I tried that before and it get nice results Smiley (but I made some modifications afterwards on the image) Smiley You should try it Smiley and also may be sometimes you should let him try pixel art Smiley (not in that project) Smiley you can get quite good results too Smiley
Logged

Christian Knudsen
Level 10
*****



View Profile WWW
« Reply #14 on: November 09, 2012, 08:17:42 AM »

Smileys aren't periods.
Logged

Laserbrain Studios
Currently working on Hidden Asset (TIGSource DevLog)
SuperDisk
Level 2
**



View Profile
« Reply #15 on: November 10, 2012, 08:34:57 PM »

Anyway... I released the engine on Github today.

https://github.com/SuperDisk/MegaCity-Engine

It's not really meant for serious game building as of yet (it's not done and isn't very well tested) but it might be a nice learning experience for a novice to browse through.

Or maybe I'm the novice  My Word!
Logged
amidos2006
Level 1
*


View Profile WWW
« Reply #16 on: November 11, 2012, 03:38:06 PM »

Smileys aren't periods.
LooooL :D

I know but I like them alot Smiley as it shows how I feel and I like to smile a lot when I see something nice Smiley

Sorry if that annoyed you Sad

Logged

SuperDisk
Level 2
**



View Profile
« Reply #17 on: November 12, 2012, 02:59:39 PM »

Added a couple controls like labels and input boxes. They work alright. Keep in mind though, the Giffer makes really low framerate stuff.. it actually runs at a steady 60 fps.

Logged
amidos2006
Level 1
*


View Profile WWW
« Reply #18 on: November 13, 2012, 02:02:05 AM »

That nice Smiley keep the good work Smiley
Logged

SuperDisk
Level 2
**



View Profile
« Reply #19 on: November 13, 2012, 12:06:31 PM »

That nice Smiley keep the good work Smiley

Thanks!

I'm having some trouble with circular imports, so hopefully that will be resolved soon enough...  Droop
Logged
Pages: [1] 2 3
Print
Jump to:  

Theme orange-lt created by panic