Giter Site home page Giter Site logo

complete-galactic-dominion's Introduction

πŸ‘‹ Hi, I'm Julian Ceipek

I β™₯ learning, collaborating & teaching.

I craft systems with & for people. Software that’s usable, extensible, fast.

Over the past 8 years, I've designed, implemented, and maintained foundational systems for approachable X-ray machines, live programming environments, award-winning multiplatform games, and interactive robotics installations.

I thrive in small collaborative teams that need versatility in the face of ambiguity.

Check out my portfolio at jceipek.com.

complete-galactic-dominion's People

Contributors

jceipek avatar jkirschner avatar karankanodia avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

complete-galactic-dominion's Issues

Crash while selecting units

I haven't had time to investigate this yet.

    An unexpected error occurred in the event thread.
    Traceback (most recent call last):
      File "/home/jceipek/CGD/Complete-Galactic-Dominion/architecture/Window.py", line 254, in pygameEventPoster
        self.manager.post(i) #Warning: make sure that threading doesn't cause \
      File "/home/jceipek/CGD/Complete-Galactic-Dominion/architecture/Manager.py", line 56, in post
        listener.notify(event)
      File "/home/jceipek/CGD/Complete-Galactic-Dominion/architecture/UserInterface.py", line 82, in notify
        self.activeScreen.processAddDragCompletedEvent(event)
      File "/home/jceipek/CGD/Complete-Galactic-Dominion/architecture/Screen.py", line 86, in processAddDragCompletedEvent
        self.viewport.completeDrag(event)
      File "/home/jceipek/CGD/Complete-Galactic-Dominion/architecture/Viewport.py", line 198, in completeDrag
        self.dragSelect(event)
      File "/home/jceipek/CGD/Complete-Galactic-Dominion/architecture/Viewport.py", line 236, in dragSelect
        drawRect = entity.rect.move(entity.drawOffset)
    TypeError: argument must contain two numbers
    63420775203338716 <class 'Event.QuitEvent.QuitEvent'>
        No Additional Debug Info Available

EOF Error when connecting to the server

Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
self.run()
File "/usr/lib/python2.6/threading.py", line 484, in run
self.__target(_self.__args, *_self.__kwargs)
File "/home/patrick/Complete-Galactic-Dominion/architecture/networking.py", line 159, in processInput
self.parent.processInput(self,line)
File "/home/patrick/Complete-Galactic-Dominion/architecture/gameClient.py", line 24, in processInput
self.manager.post(event)
File "/home/patrick/Complete-Galactic-Dominion/architecture/Manager.py", line 57, in post
listener.notify(event)
File "/home/patrick/Complete-Galactic-Dominion/architecture/WorldManipulator.py", line 26, in notify
cmd = cPickle.loads(data)
EOFError

Units must be able to attack other units

When right-clicking on a unit while another unit (or group) is selected, the selected unit(s) must move within a certain radius of the target unit and attack it at certain time intervals.

Error when moving units.

None
Traceback (most recent call last):
File "client.py", line 91, in
eTypestoListeners = init()
File "client.py", line 83, in init
eventManager.post(Event.StartEvent())
File "/Users/julian/Complete-Galactic-Dominion/architecture/Manager.py", line 59, in post
listener.notify(event)
File "/Users/julian/Complete-Galactic-Dominion/architecture/Window.py", line 264, in notify
self.run()
File "/Users/julian/Complete-Galactic-Dominion/architecture/Window.py", line 122, in run
self.manager.post(Event.UpdateEvent(self.gameFrametime,self.gameTime))
File "/Users/julian/Complete-Galactic-Dominion/architecture/Manager.py", line 59, in post
listener.notify(event)
File "/Users/julian/Complete-Galactic-Dominion/architecture/Universe.py", line 47, in notify
self.update()#this may become a thread
File "/Users/julian/Complete-Galactic-Dominion/architecture/Universe.py", line 38, in update
self.activeWorld.update()
File "/Users/julian/Complete-Galactic-Dominion/architecture/World.py", line 44, in update
entity.update()
File "/Users/julian/Complete-Galactic-Dominion/architecture/Unit.py", line 40, in update
self.move()
File "/Users/julian/Complete-Galactic-Dominion/architecture/Unit.py", line 73, in move
dirx=self.dest[0]-curX #unscaled x direction of movement
TypeError: 'NoneType' object is unsubscriptable

Interface needs to know fps

How are we going to tell the interface what the frame rate is? This is needed for updating behavior and is necessary for scrolling to be implemented properly.

Everything is discretized: Networking will fail if this is true

Decisions made by a unit based on its surroundings currently occur based on a discrete unit state. For example, a unit must check to see if it is in range before it attacks. In order for a deterministic system to be implemented, units must be able to make these kind of checks based on their "true" positions between discrete steps, using a timestamp.

I propose a function that will determine the "true" position of a unit at a given time to allow this to be done.

EntityIDs no longer unique!

It appears that a class instance (not object instance) is unique to a module.

Previously, all entities were being created in client. However, now some of them are being created in WorldManipulator. I did not realize this issue until trying to implement resources. client and WorldManipulator now have different Entity class instances, meaning that the idcounters are no longer unique. All entities need to be created within the same module...

If I try to create Resources within the World created in client, and then WorldManipulator creates Units, the Resources in the allEntities world dict are eliminated.

Patrick, I will need to fix this along with you (it requires your knowledge of how networking is being done).

ObjectOfAction not always loaded properly

Check line 106 of WorldManipulator.

Traceback (most recent call last):
File "client.py", line 107, in
eTypestoListeners = init('10.41.24.13')
File "client.py", line 99, in init
eventManager.post(Event.StartEvent())
File "/home/jkirschner/Documents/SoftDesign/Complete-Galactic-Dominion/architecture/Manager.py", line 70, in post
listener.notify(event)
File "/home/jkirschner/Documents/SoftDesign/Complete-Galactic-Dominion/architecture/Window.py", line 301, in notify
self.run()
File "/home/jkirschner/Documents/SoftDesign/Complete-Galactic-Dominion/architecture/Window.py", line 125, in run
self.manager.post(Event.UpdateEvent(self.gameFrametime,self.gameTime))
File "/home/jkirschner/Documents/SoftDesign/Complete-Galactic-Dominion/architecture/Manager.py", line 70, in post
listener.notify(event)
File "/home/jkirschner/Documents/SoftDesign/Complete-Galactic-Dominion/architecture/Universe.py", line 94, in notify
self.update()#this may become a thread
File "/home/jkirschner/Documents/SoftDesign/Complete-Galactic-Dominion/architecture/Universe.py", line 76, in update
self.activeWorld.update()
File "/home/jkirschner/Documents/SoftDesign/Complete-Galactic-Dominion/architecture/World.py", line 123, in update
entity.update()
File "/home/jkirschner/Documents/SoftDesign/Complete-Galactic-Dominion/architecture/Unit.py", line 353, in update
self.deposit()
File "/home/jkirschner/Documents/SoftDesign/Complete-Galactic-Dominion/architecture/Unit.py", line 393, in deposit
if self.moveCloseToObject(self.radius[Locals.DEPOSIT], self.objectOfAction):
File "/home/jkirschner/Documents/SoftDesign/Complete-Galactic-Dominion/architecture/Unit.py", line 453, in moveCloseToObject
closest=specialMath.findClosest(self.realCenter, obj.realCenter, self.worldSize)
AttributeError: 'int' object has no attribute 'realCenter'

Entities don't move to deposit resources

This needs to be fixed. If an entity or entities is selected and told to deposit resources at a TestTownCenter, they do not have to move to TestTownCenter to deposit said resources.

Depositing Resources in Groups

Units cannot deposit resources if they have not all gathered resources, but only if they have not been re-selected.

Steps to replicate:

  1. Use a unit to gather most of the gold from a mine and deposit it in a building.
  2. Select a group of units that have never gathered resources.
  3. Gather the remaining gold in the mine with the group (some will not gather anything)
    4a. Attempt to deposit - fail
    4b. Attempt to gather gold from a different mine - fail

Deselecting and r

eselecting the group will allow (4) again.

Gold-ore.png not found

Probably was not pushed.

  Cannot load image: Gold-ore.png
  Deleting Client
  Traceback (most recent call last):
    File "/Users/julian/Complete-Galactic-Dominion/architecture/networking.py", line 116, in __del__
      self.socketThread.__del__()
  AttributeError: 'GameClient' object has no attribute 'socketThread'
  Couldn't open Gold-ore.png

Unable to exit fullscreen mode if exception occurs

An error occurred when I right-clicked at a specific spot on the grid. Normally this isn't an issue. However, an exception was thrown, but the graphics display (FPS) continued to update. Scrolling was no longer occurring, and no key presses (including ESC and CTRL+ATL+DELETE were working). I had to restart my computer.

This is annoying and should be fixed.

Entity information still shown after death

I am not sure how this was implemented, but an entities information should no longer be shown after it does (or, at least that is my opinion). Currently, the information stays up there with negative health. @berit, if you implemented this, could you fix it?

Grid bleeds outside of viewport when drawn.

Not sure how best to fix this (and it isn't high priority right now), but the grid drawing method assumes that the viewport fills the screen, so it bleeds outside of the viewport.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.